﻿Imports Commander_Wars.Spieletools
''' <summary>
''' Wird zu erstellen des KO's Sturm verwendet copyright Nintendo und Intelligent System
''' </summary>
''' <remarks></remarks>
Public Class KOSturm
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "STURM"
        Armee = Armeen.BH.ToString
        Musik = "Sturm"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 10
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 6
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 6
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 3
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen, ObjektSpielfeld.Wetterarten.Sandsturm, ObjektSpielfeld.Wetterarten.Sonne}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Eins, Bewegungsarten.Eins, Bewegungsarten.Eins}
                OffensivStaerke = New Feuerkrafttabelle80
                DeffensivStaerke = New Feuerkrafttabelle120
            Case CommanderWarsGameModi.AdvanceWars2
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen, ObjektSpielfeld.Wetterarten.Sandsturm, ObjektSpielfeld.Wetterarten.Sonne}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Eins, Bewegungsarten.Eins, Bewegungsarten.Eins}
                OffensivStaerke = New Feuerkrafttabelle120
                DeffensivStaerke = New Feuerkrafttabelle120
            Case Else
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen, ObjektSpielfeld.Wetterarten.Sandsturm, ObjektSpielfeld.Wetterarten.Sonne}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Eins, Bewegungsarten.Eins, Bewegungsarten.Eins}
                OffensivStaerke = New Feuerkrafttabelle110
                DeffensivStaerke = New Feuerkrafttabelle120
        End Select
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If

    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            Rakete(4, "Meteor", 2, Effekte.Keiner)
        End If
        OffensivStaerke = New Feuerkrafttabelle120
        GabeEingesetzt()
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectRocket(4, "Meteor", 2, Effekte.Keiner, 0))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectRocket(8, "Meteor", 2, Effekte.Schock, 0))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                If OhneFunktion = False Then
                    Rakete(4, "Meteor", 2, Effekte.Keiner)
                End If
                OffensivStaerke = New Feuerkrafttabelle90
                DeffensivStaerke = New Feuerkrafttabelle130
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWars2
                If OhneFunktion = False Then
                    Rakete(8, "Meteor", 2, Effekte.Keiner)
                End If
                OffensivStaerke = New Feuerkrafttabelle140
                DeffensivStaerke = New Feuerkrafttabelle150
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWarsDC
                DeffensivStaerke = New Feuerkrafttabelle120
                If OhneFunktion = False Then
                    Rakete(8, "Meteor", 2, Effekte.Keiner)
                End If
                OffensivStaerke = New Feuerkrafttabelle120
                GabeEingesetzt()
            Case Else
                If OhneFunktion = False Then
                    Rakete(8, "Meteor", 2, Effekte.Keiner)
                End If
                OffensivStaerke = New Feuerkrafttabelle140
                DeffensivStaerke = New Feuerkrafttabelle150
                GabeEingesetzt()
        End Select

    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
    Public Overrides Function GetCOKosten() As Integer
        Return 10000 'Sturm is expensive you know
    End Function
End Class

Public Class KOBeschreibungSturm
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Sturm"
        Fein = "Invasion"
        Nein = "Frieden"
        Beschreibung = New String() {"Der Oberbefehlshaber von Black Hole.", "Mysterioeser Invasor aus einer anderen Welt."}
        Stil = New String() {"Seine Truppen haben auf jedem Feld", "1 Punkt Bewegungskosten und lassen", "sich nur von Schnee aufhalten."}
        Gabebeschreibung = New String() {"Ein Meteor verursacht 4 TP Schaden."}
        SpezialgabeBeschreibung = New String() {"Ein gigantischer Meteor verursacht 8 TP Schaden."}
        GabeKosten = 6
        Spezialgabekosten = 4
        Gaben = New String() {"Meteor", "Meteoritenregen"}
        Synergie = New Decimal() {1}
        KONamen = New String() {"VON BOLT"}
        Doppelgabenamen = New String() {"Boese Macht"}
        Gabesaetze = New String() {"Macht euch fuer die Finsternis bereit!" _
                                       , "Brenne Erde! Brenne..." _
                                       , "Erzittert vor meiner Macht!" _
                                       , "Diese Macht... so herrlich zerstoererisch." _
                                       , "Du wirst nicht ueberleben!" _
                                       , "Furcht ist alles was euch bleibt."}
        Siegsaetze = New String() {"...?..." _
                                , "Nicht umsonst heisse ich Sturm." _
                                , "Das ist der Vorgeschmack meiner Macht."}
        Tauschsaetze = New String() {"Du wirst lernen meine Macht zu fuerchten." _
                                    , "...."}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("STURM", "VON BOLT", "Unendliche Macht", "und ewiges Leben fuerchtet uns.") _
                                              , New DoppelGabesatz("VON BOLT", "STURM", "Hrrrr...Hsss.. Ich werde euch vernichten.", "Erzittert vor dem unendlich Boesen!")}
        Niederlagesaetze = New String() {"GWAAAAAAAAAAAAAAAH! Ich habe die Macht dieser Wuermer unterschaetzt!", _
                                        "Neeeeeeeeiiiiiiiiiiiiiiiiin!!!"}
    End Sub
End Class
